﻿

namespace MIAP.Negocio
{
    using System.Collections.Generic;
    using System.Linq;
    using MIAP.DataAccess.Interfaces;
    using MIAP.Entidades;

    /// <summary>
    /// Clase que contiene las operaciones de negocio para Administración de Usuarios.
    /// </summary>
    public class AdministrarUsuarioPerfilesNegocio
    {
        #region Campos

        /// <summary>
        /// Instancia para el acceso a datos de UsuarioPerfiles.
        /// </summary>
        private readonly IUsuarioPerfilDao daoUsuarioPerfiles;

        #endregion

        #region Constructor

        /// <summary>
        /// Inicializa una nueva instancia <see cref="AdministrarUsuarioPerfilesNegocio"/>
        /// </summary>
        public AdministrarUsuarioPerfilesNegocio()
        {
            this.daoUsuarioPerfiles = DataAccessFactory.Instance.CreateUsuarioPerfilDao();
        }

        #endregion

        #region Metodos

        /// <summary>
        /// Obtiene todos los perfiles de un determinado usuario.
        /// </summary>
        /// <param name="idUsuario">Usuario del cual serán obtenidos los perfiles.</param>
        /// <returns>Lista con los perfiles del usuario.</returns>
        public List<PerfilInfo> GetPerfilesByUsuario(int idUsuario)
        {
            return this.daoUsuarioPerfiles.GetPerfilesByUsuario(idUsuario).ToList();
        }

        /// <summary>
        /// Elimina un perfil relacionado con un usuario.
        /// </summary>
        /// <param name="idUsuario">Es el id del usuario al que se le eliminará el perfil.</param>
        /// <param name="idPerfil">Es el id del perfil que será eliminado.</param>
        public void RemovePerfilesByUsuario(int idUsuario, int idPerfil)
        {
            this.daoUsuarioPerfiles.RemovePerfilesByUsuario(idUsuario, idPerfil);
        }     

        #endregion
    }
}
